//==========================================================================
// Copyright (c) 2000-2008,  Elastos, Inc.  All Rights Reserved.
//==========================================================================

#ifndef __ELASTOS_FM_H__
#define __ELASTOS_FM_H__

#include <ddk.h>
#include "drvassistant.h"
#include "nu_api.h"




//#define FM_SEARCH_UP                0x01
//#define FM_SEARCH_DOWN              0x02
//#define FM_SET_CHANNEL_FREQ         0x03
//#define FM_GET_CHANNEL_FREQ         0x04
//#define FM_SET_VOLUME_RANGE_HI      0x05
//#define FM_SET_VOLUME_RANGE_LO      0x06
//#define FM_STOP                     0x09
//#define FM_SELECT_PATH              0x0a

class CFM : public CDeviceDriver
{
public:

    CARAPI Read(
        /* [in] */ Int64 offset,
        /* [in] */ Int32 bytesToRead,
        /* [out] */ MemoryBuf* pBuffer,
        /* [out] */ IEvent** ppCompletionEvent) {
        return E_NOT_IMPLEMENTED;
    }

    CARAPI Write(
        /* [in] */ Int64 offset,
        /* [in] */ const MemoryBuf &buffer,
        /* [out] */ Int32* pBytesWritten,
        /* [out] */ IEvent** ppCompletionEvent) {
        return E_NOT_IMPLEMENTED;
    }

    CARAPI Control(
        /* [in] */ Handle32 controlCode,
        /* [in] */ const MemoryBuf &inBuffer,
        /* [out] */ MemoryBuf* pOutBuffer,
        /* [out] */ IEvent** ppCompletionEvent);

    virtual void Dispose();
    ECode Init();
    CFM(){m_iInit = 0;}
public:
    DzEvent m_SeekEvent;
    Int32   m_iInit;
};

#endif // __ELASTOS_FM_H__
